iT邦幫忙

2023 iThome 鐵人賽

DAY 3
0
Software Development

Zero to Ruby on Rails系列 第 3

Day 03 - Variable and Constant 變數與常數

  • 分享至 

  • xImage
  •  

簡介

在 Ruby 世界裡的變數和常數是用來存儲和引用數據的重要元素,為我們提供了一種有效管理和存儲數據的方式。無論您是初學者還是有經驗的開發者,深入理解這兩個概念都是掌握 Ruby 語言的基礎。讓我們一起瞭解它們的含義和用法,並探討如何在程式中運用它們,以實現更強大和可讀的代碼。

Variable 變數

變數用於存儲和引用數據,可以是不同類型的數據,如整數、字串、數組、對象等。在 Ruby 中,變數的名稱以字母或底線開頭,後面可以跟字母、數字和底線的組合。變數名稱是區分大小寫的,這表示 myVariable 和 myvariable 是不同的變數,變數本身就像標籤沒有型態

name = "Luffy"
age = 19
is_pirate = true

變數的指定與使用

要為變數賦值,只需使用 = 運算符:

#變數指定
x = "Twitter"
y = 1

#一次指定多個變數
name, fruit, type = ["Luffy", "人人果實", "幻獸種"]

#使用變數
p y          #印出 1
p type       #印出 幻獸種

等號 = 就是指定

a = a + 1    #把 a 值 加 1 後 指定給 a

a = 2
a = a + 1

p a          #印出 3

變數的命名慣例

以下常見的兩種命名方法:

  1. snake_case 蛇式命名法
# my_name
# monkey_d_luffy
  1. camelCase 駝峰式命名法
# myName
# monkeyDLuffy

變數的命名非常重要,如何給變數好的名字能夠讓看的人清楚的了解它的意義,在實作上會是非常重要的一環。

變數的種類

在 Ruby 中,有不同種類的變數,包括區域變數、實體變數、類別變數和全域變數。以下是這些變數類型的介紹:

  1. 區域變數(Local Variables):
    區域變數是定義在方法或區塊內部的變數,僅在該方法或區塊內可見,一旦方法或區塊執行完畢,變數就會被銷毀。
def luffy_wanted
  price = 3000000000 # 區域變數
  puts price
end

luffy_wanted # 呼叫方法
puts price # 會報錯,price 不在作用範圍內
  1. 全域變數(Global Variables):
    全域變數在整個程式中都可見,應謹慎使用,因為它們可能對程式的可讀性和維護性產生負面影響,以美元符號 ($) 開頭,例如:$name。
$global_var = 100 # 全域變數

def print_global_var
  puts $global_var
end

print_global_var # 輸出 100
  1. 實體變數(Instance Variables):
    實體變數屬於物件,以符號 (@) 開頭,例如:@name 或 @age,實體變數用於在不同方法之間共享數據。
class Onepiece
  def priate(name)
    @name = name # 實體變數
  end

  def say_hello
    puts "Hello, #{@name}!"
  end
end

pirate = Pirate.new("Luffy")
pirate.say_hello # 輸出 "Hello, Luffy!"

  1. 類別變數(Class Variables):
    類別變數屬於整個類別,它們以兩個符號 (@@) 開頭,例如:@@name 或 @@count,類別變數在整個類別中都可見,但需要謹慎使用,因為它們具有全域性質。
class Counter
  @@count = 0 # 類別變數

  def self.increment
    @@count += 1
  end

  def self.get_count
    @@count
  end
end

Counter.increment
Counter.increment
puts Counter.get_count # 輸出 2

Constant 常數

在 Ruby 大寫字母開頭的就是常數,不太需要改變的值,就會指定給常數。
例如:

PI = 3.14159
Pirates = "草帽海賊團"

在 Ruby 常數是可以被修改的

Fruit = '橡膠果實'
Fruit = '人人果實' # warning: already initialized constant Fruit

這就是 Ruby 比較特別的一點 跟尾田老師一樣

預告

Day 04 預計來介紹字串、數字、陣列和範圍,我們明天見!


上一篇
Day 02 - Hello Ruby
下一篇
Day 04 - String, Number, Array and Range 字串、數字、陣列&範圍
系列文
Zero to Ruby on Rails30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言